Video coding and compression techniques may achieve efficient compression by reducing both temporal redundancies between video frames in a frame sequence and also spatial redundancies within a video frame. Examples of video coding and compression techniques are described by the ITU-T H.261, H.263, Motion Picture Experts Group (MPEG) 1, MPEG2, and MPEG4 standards, as well as the ITU-T H.264 standard and its counterpart, ISO/IEC MPEG-4, Part 10, i.e., Advanced Video Coding (AVC).
An intra-coded frame is self-contained and reduces spatial redundancies within a video frame. An inter-coded frame, however, is predicted via motion compensation from other coded frames (e.g., previously coded frames) to reduce temporal redundancies. Inter-coding may achieve high compression efficiency. However, the inter-dependency between frames makes the coded bit-stream for inter-coded frames more susceptible to propagating channel errors. Errors introduced in the compressed bit-stream may result in errors in the video frames reconstructed by a video decoder.
Intra-coding may help minimize the possibility of propagating channel errors, because the coding of video data in these frames is independent of the coding of video data in previous or subsequent frames. However, intra-coded frames may comprise many times more coded data than inter-coded frames, and may therefore cause transmission bandwidth issues. As a result, there may be a degradation of quality on the decoded video output side, particularly when decoding is performed by real-time, or streaming, video applications. Thus, in some cases, video coding techniques may only intra-code individual segments (e.g., macro-blocks) of data within individual frames, rather than intra-coding all of the frame data.
Any given macro-block within an inter-coded frame (i.e., Predicted frame (P-frame) or Bi-directionally predicted frame (B-frame)) may be intra-coded as an intra macro-block. Similar to intra-coded frames, an intra-coded macro-block is coded independently of data from another (e.g., previously) coded frame. The method of forcing macro-blocks to be intra-coded may be referred to as encoder intra-refresh.